The exemplary embodiments relate to the optimal selection of colors to be used in color indicia systems such as patch codes, color barcodes and the like, in a printed image for conveying information that can be read calorimetrically. “Indicia” refer in this document to any marks on a hardcopy substrate that can be encoded to represent information, and can be read by a calorimetric sensor and thereby decoded. The calorimetric sensor may be, for example, a spectrophotorneter, a calorimeter, or a scanner. The scanner may be, for example, an RGB flatbed scanner, a drum scanner, a hand-held scanner, or an inline scan-bar in a printing or finishing or inspecting device.
Patch code systems are similar to the well-known barcode systems, and can be used in place of barcode systems or to augment or enhance them. In barcode systems, information is primarily encoded spatially, while in patch code systems information is primarily encoded calorimetrically. Thus, patch code systems are well suited for use in color measurement devices, such as spectrophotometers, that cannot read barcodes due to limited spatial resolution. In addition, in “color barcodes,” the information can be encoded both spatially (one-dimensional or two-dimensional) and calorimetrically, thus significantly increasing information density. These hybrid systems have characteristics of both barcodes and patch codes, and the patch code improvements discussed in this document are applicable to such systems as well.
Automated color measurement is commonly used when large volumes of measurements are required, for example in color calibration or characterization of printing devices. The spectrophotometers used in such automated measurements typically have very high colorimetric accuracy but poor spatial resolution, thereby making barcodes unsuitable for use. Patch codes are ideally suited for such applications, allowing job identification data, process automation commands, and other information to be encoded according to a scheme in which the data is printed according to a protocol and in a format approximately identical to a format of the calibration target.
Although the application described above is well suited to color sensing devices, such as spectrophotometers, which have relatively low spatial resolution, it should be understood that this invention is also applicable to several other applications, including those using sensing devices having higher spatial resolution. For example, this invention can be used to optimize the colors used in color barcodes, to maximize the information density possible in a given area of hardcopy, for specific printing and sensing devices.
In this document, the term “code book” refers to a data collection (e.g., a table) relating each information element to the corresponding indicia color value. Information elements are the basic blocks in terms of which information is to be conveyed by each indicia color. More complex information elements such as alphanumeric characters, words, equipment identification, etc., may be composed of combinations of one or more of the basic elements, i.e., in terms of multiple patches. The color values are represented in marking device input parameters (“input values” such as CMYK or Lab) and/or in sensing device output parameters (“output colors” such as RGB or Lab). Code books can be used to encode information elements into the corresponding printer color values, as well as to decode measured color values back into the corresponding information elements. The information elements and/or the corresponding color values are referred to as code book entries.
Like most coding schemes with noises in both the encode and decode phases, there is an inherent tradeoff between decoding robustness and the number of code levels available for use as code book entries. For example, in U.S. Pat. No. 6,972,867, a system is disclosed that is highly robust for many measurement devices for samples from different printers, but this was achieved at the expense of only a small number of available code levels. Only eight levels were required, thus only eight distinct colors were needed; these are so distinct that most measurement devices can differentiate between them easily, even with prints rendered by different printers at different times. Therefore, generally there is no need for calibration/characterization of sensors and printers in generating patch codes and decoding them. For example, it is very easy to distinguish between red and green even though different printers give different red and green and different measurement devices read red and green a bit differently. Since it is so distinct the code value associated with red would not be mistaken for green in the decoding even with severe noises in the printing and sensing devices.
In U.S. Publication No. 2008-0204773-A1 published Aug. 28, 2008, entitled PATCH CODES WITH IMPROVED ROBUSTNESS, by Morgana and Klassen, a modification is made wherein more code levels are possible, by printing and measuring test patches using the printers and sensors of interest, to determine readily distinguishable patch codes. In particular, a set of candidate CMYK values for patch codes is first printed, with repeats, by various printers in scope. These multiple copies of the candidate CMYK values are then scanned to get their corresponding RGB values. Clustering and filtering are then done to remove patches that can be confused in the decoding process based on measured RGB values (e.g. if two CMYK combinations have RGB values that are too close to each other, one or both are removed). The CMYK values of the surviving patches and the average RGB values of their corresponding scans form the color values in the code book. For encoding, these CMYK values from the code book would be used for printing patch codes. For decoding, patch codes would be scanned and their RGB values would be compared to the code book to extract the intended code values and thereby the intended information elements. This allows a greater number of code levels to be achieved, but since the starting point is a uniform distribution in CMYK space, the distribution of the colors in sensor RGB space is an uncontrolled outcome, and the choice of color values, although increased, is sub-optimal.
Given the desire for including as much information as possible in a given area of the color patch code or color barcode, there is a need for an improved method and system for deriving optimal indicia color values which can maximize a number of code levels while maintaining an acceptable decoding robustness.
More particularly, there is a need for a system that can assess available indicia color values and the desired number of code levels, optimally distribute the code levels relative to their detection by the scanner or spectrophotometer, and derive corresponding printer input signals to the optimally distributed output colors representative of the coded information elements for the best combination of robustness and information capacity in the code book derivation.